package com.hpjpw.ido.service;

import java.util.List;
import com.hpjpw.ido.domain.MessageReceive;

/**
 * 消息阅读状态Service接口
 * 
 * @author hpj
 * @date 2021-01-04
 */
public interface IMessageReceiveService 
{
    /**
     * 查询消息阅读状态
     * 
     * @param id 消息阅读状态ID
     * @return 消息阅读状态
     */
    public MessageReceive selectMessageReceiveById(String id);

    /**
     * 查询消息阅读状态列表
     * 
     * @param messageReceive 消息阅读状态
     * @return 消息阅读状态集合
     */
    public List<MessageReceive> selectMessageReceiveList(MessageReceive messageReceive);

    /**
     * 通过接收者ID查询消息阅读状态列表
     *
     * @param receiverId 接收者ID
     * @return 消息阅读状态集合
     */
    public List<MessageReceive> selectMessageReceiveByReceiverId(Long receiverId);

    /**
     * 通过接收者ID和消息ID查询消息阅读状态
     *
     * @param messageReceive 消息阅读状态
     * @return 消息阅读状态
     */
    public MessageReceive selectMessageReceiveByRIdAndMId(MessageReceive messageReceive);

    /**
     * 新增消息阅读状态
     * 
     * @param messageReceive 消息阅读状态
     * @return 结果
     */
    public int insertMessageReceive(MessageReceive messageReceive);

    /**
     * 通过用户ID列表新增消息阅读状态
     *
     * @param userIds 用户ID列表
     * @param messageId 消息ID
     * @return 结果
     */
    public int insertMessageReceiveByUserIds(List<Long> userIds, Long messageId);

    /**
     * 修改消息阅读状态
     * 
     * @param messageReceive 消息阅读状态
     * @return 结果
     */
    public int updateMessageReceive(MessageReceive messageReceive);

    /**
     * 通过ReceiverId批量修改消息阅读状态
     *
     * @param messageReceive 消息阅读状态
     * @return 结果
     */
    public int updateMessageReceiveByReceiverId(MessageReceive messageReceive);

    /**
     * 批量删除消息阅读状态
     * 
     * @param ids 需要删除的消息阅读状态ID
     * @return 结果
     */
    public int deleteMessageReceiveByIds(String[] ids);

    /**
     * 删除消息阅读状态信息
     * 
     * @param id 消息阅读状态ID
     * @return 结果
     */
    public int deleteMessageReceiveById(String id);
}
